package proyectosdservidor;

import java.util.ArrayList;


/**
 * Implementa una clase para almacenamiento de registros en cada servidor.
 */
public class Registros {
    
    private ArrayList<Registro> registros = new ArrayList<Registro>();    
    private final int max = ServerCoordinator.baldeSize;
    private final double overFlowFactor = ServerCoordinator.overFlowFactor;

    public ArrayList<Registro> getRegistros(){
        return (ArrayList<Registro>)registros.clone();
    }

    public void clearMen(){
        registros.clear();
    }

    public boolean isOverFlow(){
        if(registros.size() >= overFlowFactor * max){
            return true;
        }else{
            return false;
        }
    }

    
    public boolean insertar(String RID, String registro){
        if(recuperar(RID) == null){
            Registro r = new Registro(RID, registro);
            registros.add(r);
            return true;
        }else{
            return false;
        }
       
    }


    public String recuperar(String RID){
        for(int i = 0; i < this.registros.size(); i++){
            if(RID.equals(registros.get(i).RID)){
                return registros.get(i).registro;
            }
        }
        return null;
    }
    
    public boolean eliminar(String RID){
        for(int i = 0; i < this.registros.size(); i++){
            if(RID.equals(registros.get(i).RID)){
                registros.remove(i);
                return true;
            }
        }
        return false;
    }

    public void modificar (String RID, String newRegistro){
        for(int i = 0; i < this.registros.size(); i++){
            if(RID.equals(registros.get(i).RID)){
                registros.get(i).setRegistro(newRegistro);
            }
        }
    }

}